It is often desirable to modify system logic because of a mistake or improper design of the logic. Previously developed techniques for programming logic have included the use of fuses which may be blown to affect the interconnection of the logic. Examples of circuits using fuses are programmable read only memories (PROMs) and field programmable logic arrays (EPLAs). Mask-programmable logic arrays (MPLAs) are programmed at the manufacturing facility by designing connections between the gates. All of these devices share the characteristic of being able to be programmed only once. EPLAs and PROMs may be modified by blowing fuses in the program lines between component matrices thereof, but again this can be done only once. Furthermore, circuits which utilize the blowing of fuses require a source of programming current that is many times that of operational current, thereby making it difficult to redesign the circuits in the field.
Other techniques for the redesign or reprogramming of logic circuits have utilized electrically alterable circuits that must be programmed with special programmers and then erased with ultraviolet light. Such circuits, termed erasable and programmable read only memories (EPROMs), require substantial time and complexity for programming. For example, programming times for EPROMs generally range in the order of seconds per programmed connection. EPROMs are also disadvantageous in that they may be reprogrammed only a few times, and are difficult to reprogram in the field.
In view of the foregoing, a need has existed in the industry for a programmable logic array whose preprogrammed functions can be easily varied in the field after the array is operated, and it is determined that changes or modifications are needed. A further need has existed for a field programmable logic array with preprogrammed functions that can be easily varied an indefinite number of times. Finally, a need has arisen for a field-programmable logic circuit that can be easily programmed without the aid of special equipment.